]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspacesView: Fix graphical glitches with windows appearing for a split-second
authorJasper St. Pierre <jstpierre@mecheye.net>
Thu, 17 Mar 2011 13:37:55 +0000 (09:37 -0400)
committerAdel Gadllah <adel.gadllah@gmail.com>
Fri, 18 Mar 2011 22:21:43 +0000 (23:21 +0100)
When we were knocking off workspace height to fix the ratio problems, we
weren't adding spacing in between workspaces, so they smooshed up against
each other whenever we took height off, causing them to be visible.

js/ui/workspacesView.js

index b374179503247128096c52ea9fb74063bd2e59ad..774ea594e1fbead69a3c2b373d04f912be8e2de9 100644 (file)
@@ -51,6 +51,7 @@ WorkspacesView.prototype = {
         this._height = 0;
         this._x = 0;
         this._y = 0;
+        this._workspaceRatioSpacing = 0;
         this._spacing = 0;
         this._lostWorkspaces = [];
         this._animating = false; // tweening
@@ -124,7 +125,7 @@ WorkspacesView.prototype = {
         this._swipeScrollEndId = 0;
     },
 
-    setGeometry: function(x, y, width, height) {
+    setGeometry: function(x, y, width, height, spacing) {
       if (this._x == x && this._y == y &&
           this._width == width && this._height == height)
           return;
@@ -132,6 +133,7 @@ WorkspacesView.prototype = {
         this._height = height;
         this._x = x;
         this._y = y;
+        this._workspaceRatioSpacing = spacing;
 
         for (let i = 0; i < this._workspaces.length; i++)
             this._workspaces[i].setGeometry(x, y, width, height);
@@ -200,7 +202,7 @@ WorkspacesView.prototype = {
             Tweener.removeTweens(workspace.actor);
 
             let opacity = (this._inDrag && w != active) ? 200 : 255;
-            let y = (w - active) * (this._height + this._spacing);
+            let y = (w - active) * (this._height + this._spacing + this._workspaceRatioSpacing);
 
             if (showAnimation) {
                 let params = { y: y,
@@ -763,9 +765,10 @@ WorkspacesDisplay.prototype = {
         }
 
         height = (fullHeight / fullWidth) * width;
-        y += (fullHeight - height) / 2;
+        let difference = fullHeight - height;
+        y += difference / 2;
 
-        this.workspacesView.setGeometry(x, y, width, height);
+        this.workspacesView.setGeometry(x, y, width, height, difference);
     },
 
     _onRestacked: function() {